Control system for progressing cavity pumps

ABSTRACT

A control system for the operation of a progressing cavity pump which may be used for production of gas and/or oil from a well. The control system includes vector feedback model to derive values of torque and speed from signals indicative of instantaneous current and voltage drawn by the pump motor, a pump model which derives values of the fluid flow rate and the head pressure for the pump from torque and speed inputs, a pumping system model that derives from the estimated values of the pump operating parameters an estimated value of a pumping system parameter and controllers responsive to the estimated values of the pumping system parameters to control the pump to maintain fluid level at the pump input near an optimum level.

CROSS REFERENCE TO RELATED APPLICATIONS

[0001] This application claims priority of provisional application No. 60/429,158, entitled “Sensorless Control System For Progressive Cavity and Electric Submersible Pumps”, which was filed on Nov. 26, 2002, and provisional application serial No. 60/414,197, entitled “Rod Pump Control System Including Parameter Estimator”, which was filed on Sep. 27, 2002, and is related to application serial number entitled “Control System For Centrifugal Pumps”, which was filed on Sep. 5, 2003, and application serial number entitled “Rod Pump Control System Including Parameter Estimator”, which was filed on Sep. 5, 2003, which four patent applications are hereby incorporated herein by reference.

BACKGROUND OF THE INVENTION

[0002] Field of the Invention

[0003] The present invention relates generally to pumping systems, and more particularly, to methods for determining operating parameters and optimizing the performance of progressing cavity pumps, which are rotationally driven.

[0004] Progressing Cavity Pumps (PCPs) are used for transporting fluids at a desired flow and pressure from one location to another, or in a recirculating system. Examples of such applications include, but are not limited to: oil, water or gas wells, irrigation systems, heating and cooling systems, wastewater treatment, municipal water treatment and distribution systems.

[0005] In order to protect a pump from damage or to optimize the operation of a pump, it is necessary to know and control various operating parameters of a pump. Among these are pump speed, pump torque, pump efficiency, fluid flow rate and pressures at the input and output of the pump.

[0006] Sensors are frequently used to directly measure pump operating parameters. In many applications, the placement required for the sensor or sensors is inconvenient or difficult to access and may require that the sensor(s) be exposed to a harmful environment. Also, sensors add to initial system cost and maintenance cost as well as decreasing the overall reliability of the system.

[0007] Progressing cavity pumping systems are inherently nonlinear. This presents several difficulties in utilizing traditional closed-loop control algorithms, which respond only to error between the parameter value desired and the parameter value measured. Also, due to the nature of some sensors, the indication of the measured parameter suffers from a time delay, due to averaging or the like. Consequently, the non-linearity of the system response and the time lag induced by the measured values makes tuning the control loops very difficult without introducing system instability. As such, it would be advantageous to predict key pump parameters and utilize each in a feed forward control path, thereby improving controller response and stability and reducing sensed parameter time delays.

[0008] As an example, in a methane gas well, it is typically necessary to pump water off to release trapped gas from an underground formation. This process is referred to as dewatering, where water is a byproduct of the gas production. The pump is operated to control the fluid level within the well, thereby maximizing the gas production while minimizing the energy consumption and water byproduct.

[0009] As another example, in an oil well, it is desirable to reduce the fluid level above the pump to lower the pressure in the casing, thereby increasing the flow of oil into the well and allowing increased production. This level is selected to reduce the level as much as possible while still providing sufficient suction pressure at the pump inlet.

[0010] Typically, progressing cavity pumps are used for both oil and gas production. Generally, the fluid level is sensed with a pressure sensor inserted near the intake or suction side of the pump, typically 1000 to 5000 feet or more below the surface. These downhole sensors are expensive and suffer very high failure rates, necessitating frequent removal of the pump and connected piping to facilitate repairs.

[0011] As fluid is removed, the level within the well drops until the inflow from the formation surrounding the pump casing equals the amount of fluid being pumped out. The pump flow rate may be reduced to prevent the fluid level from dropping too far. At a minimum, the pump inlet must be submersed in the fluid being pumped to prevent a condition that could be damaging to the pump.

[0012] Also, progressing cavity pumps are inefficient when operating at slow speeds and flows, wasting electrical power. Further adding to the inefficiency of the progressing cavity pump is leakage, where fluid runs back through internal pump clearances to the reservoir and must be pumped up again.

[0013] A further consideration is that a progressing cavity pump can be subjected to stick slip oscillations when the pump is operating at low rotational speeds, which can result in damage to the pump and connecting rod string. Stick slip oscillations also reduce the overall efficiency of the pumping system due to cavitation at the pump input during the burst of speed associated with each slip cycle.

[0014] Accordingly, it is common practice to monitor the fluid level within the well and control the operation of the pump to prevent damage. This requires the use of downhole sensors.

[0015] Downhole sensors are characterized by cost, high maintenance and reliability problems. Likewise, the need for surface flow sensors adds cost to the pump system. The elimination of a single sensor improves the installation cost, maintenance cost and reliability of the system.

[0016] Accordingly, it is an objective of the invention to provide a method for estimating the flow and pressure of a progressing cavity pump without the use of downhole sensors. Another objective of the invention is to provide a method for determining pump suction pressure and/or fluid levels in the pumping system using the flow and pressure of a progressing cavity pump combined with other pumping system parameters. Another objective of the invention is to provide a method for using closed loop control of suction pressure or fluid level to protect the pump from damage due to low or lost flow. Another objective of the invention is to provide a method for improving the dynamic performance of closed loop control of the pumping system. Other objectives of the invention are to provide methods for improving the operating flow range of the pump, for reducing the occurrence of pump stick slip oscillations, for using estimated and measured system parameters for diagnostics and preventive maintenance, for increasing pump system efficiency over a broad range of flow rates, and for automatically adjusting the pump speed to maximize gas production from coal bed methane wells.

[0017] The apparatus of the present invention must also be of construction which is both durable and long lasting, and it should also require little or no maintenance by the user throughout its operating lifetime. In order to enhance the market appeal of the apparatus of the present invention, it should also be of inexpensive construction to thereby afford it the broadest possible market. Finally, it is also an objective that all of the aforesaid advantages and objectives be achieved without incurring any substantial relative disadvantage.

SUMMARY OF THE INVENTION

[0018] The disadvantages and limitations of the background art discussed above are overcome by the present invention. With this invention, there is provided a method, without using downhole sensors, of continuously determining operational parameters of a down hole pump used in oil, water or gas production. In one embodiment, wherein the pump is a progressing cavity pump, the pump is carried by a rod string and driven by a drive system including an AC electrical drive motor having a rotor coupled to the rod through a transmission unit for rotating the pump element. The method comprises the steps of continuously measuring above ground the electrical voltages applied to the drive motor to produce electrical voltage output signals; continuously measuring above ground the electrical currents applied to the drive motor to produce electrical current output signals; using a mathematical model of the motor to derive values of instantaneous electrical torque from the electrical voltage output signals and the electrical current output signals; using a mathematical model of the motor to derive values of instantaneous motor velocity from the electrical voltage output signals and the electrical current output signals; and using mathematical pump and system models and the instantaneous motor torque and velocity values to calculate instantaneous values of operating parameters of the progressing cavity pump system. In one embodiment, the method is used for calculating pump flow rate, head pressure, suction pressure and discharge pressure.

[0019] The invention provides a method of deriving pump flow rate and head pressure from the drive motor and pumping unit parameters without the need for external instrumentation, and in particular, downhole sensors. The self-sensing control arrangement provides nearly instantaneous readings of motor velocity and torque which can be used for both monitoring and real-time, closed-loop control of the progressing cavity pump. In addition, system identification routines are used to establish parameters used in calculating performance parameters that are used in real-time closed-loop control of the operation of the progressing cavity pump.

[0020] In one embodiment, wherein the operating parameters are pump head pressure and flow rate, the method includes the steps of using the calculated values of head pressure and flow rate and instantaneous values of motor torque and speed to obtain pump efficiency. The present invention includes the use of mathematical pump and system models to relate motor torque and speed to pump head pressure, flow rate and system operational parameters. In one embodiment, this is achieved by deriving an estimate of pump head pressure and flow rate from motor currents and voltages. The results are used to control the pump to protect the pump from damage, to estimate system parameters, diagnose pumping system problems and to provide closed-loop control of the pump in order to optimize the operation of the pump. Protecting the pump includes detecting blockage, cavitation, stuck pump, broken rod string and stick slip oscillation. Comparisons of sensorless flow estimates and surface flow measurements can detect excess pump wear, flow blockage, and tubing leaks.

[0021] The operation of a progressing cavity pump is controlled to enable the pump to operate periodically, such that the pump can achieve a broad average flow range while maintaining high efficiency. This obviates the need to replace a progressing cavity pump with another pump, such as a rod beam pump, when fluid level or flow in the well decreases over time. In accordance with another aspect of the invention, a check valve is used to prevent back flow during intervals in which the pump is turned off.

[0022] In accordance with a further aspect of the invention, an optimizing technique is used in the production of methane gas wherein it is necessary to pump water off an underground formation to release the gas. The optimizing technique allows the fluid level in the well to be maintained near an optimum level in the well and to maintain the fluid at the optimum level over time by controlling pump speed to raise or lower the fluid level as needed to maintain the maximum gas production.

[0023] This is done by determining fluid flow, gas flow, gas pressure, and fluid discharge pressure at the surface. Selected fluid levels are used to define a sweet zone. This can be done manually or using a search algorithm. The search algorithm causes the fluid level to be moved up and down, searching for optimum performance. The search algorithm can be automatically repeated at preset intervals to adjust the fluid level to changing well conditions.

[0024] Uses of the self-sensing pump control system also include, but are not limited to HVAC systems, multi-pump control, irrigation systems, wastewater systems, and municipal water systems.

DESCRIPTION OF THE DRAWINGS

[0025] These and other advantages of the present invention are best understood with reference to the drawings, in which:

[0026]FIG. 1 is a simplified representation of a well including a progressing cavity pump, the operation of which is controlled by a pump control system in accordance with the present invention;

[0027]FIG. 2 is a block diagram of the progressing cavity pump control system of FIG. 1;

[0028]FIG. 3 is a functional block diagram of a pump control system for the progressing cavity pump of FIG. 1;

[0029]FIG. 4 is a block diagram of an algorithm for a pump model of the progressing cavity pump control system of FIG. 3;

[0030]FIG. 5 is a block diagram of an algorithm for a system model of the progressing cavity pump control system of FIG. 3;

[0031]FIG. 6 is a block diagram of an algorithm for a fluid level feedforward controller of the progressing cavity pump control system of FIG. 3;

[0032]FIG. 7 is a block diagram of an algorithm for a fluid level feedback controller of the progressing cavity pump control system of FIG. 3;

[0033]FIG. 8 is a simplified block diagram of an algorithm for a vector controller of the progressing cavity pump control system of FIG. 3;

[0034]FIGS. 9 and 10 are a set of pump specification curves for a progressing cavity pump, illustrating pump head pressure as a function of pump torque and pump flow as a function of pump head pressure at a given pump speed;

[0035]FIG. 11 is a diagram of a typical well reservoir for a progressing cavity pump, illustrating the relationship between the pumping system parameters;

[0036]FIG. 12 is a block diagram of the controller of the pump control system of FIG. 3; and

[0037]FIG. 13 is a set of two curves comparing the efficiency of a pumping system using duty cycle control to the efficiency of a pumping system using continuous rotary speed.

[0038] Variables used throughout the drawings have the following form: A variable with a single subscript indicates that the reference is to an actual element of the system as in Tm for the torque of the motor or a value that is known in the system and is stable as in Xp for depth of the pump. A variable with a second subscript of ‘m’, as in Vmm for measured motor voltage, indicates that the variable is measured on a real-time basis. Similarly, a second subscript of ‘e’ indicates an estimated or calculated value like Tme for estimated motor torque; a second subscript of ‘c’ indicates a command like Vmc for motor voltage command; and a second subscript of ‘f’ indicates a feedforward command like Tmf for motor torque feedforward command. Variables in bold type, as in Vs for stator voltage, are vector values having both magnitude and direction.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT

[0039] Referring to FIG. 1, the present invention is described with reference to an oil well 40 wherein oil is to be separated from an underground gas formation 22. The well includes an outer casing 15 and an inner tube 14 that extend from ground level to as much as 1000 feet or more below ground level. The casing 15 has perforations 26 to allow the fluid in the underground formation to enter the well bore. It is to be understood that water and gas can be combined with oil and the pump can be used for other liquids. The control apparatus can also be used for water only. The bottom of the tube generally terminates below the underground formations.

[0040] A progressing cavity pump (PCP) 32 is mounted at the lower end of the tube 14 and includes a helix type of pump member 34 mounted inside a pump housing. The pump member is attached to and driven by a pump rod string 35 which extends upwardly through the tube and is rotated by a drive motor 36 in a conventional well head assembly 38 above ground level. The tube 14 has a liquid outlet 41 and the casing 15 has a gas outlet 42 at the upper end above ground level 16. These elements are shown schematically in FIG. 1. The construction and operation of the progressing cavity pump is conventional. An optional check valve 28 may be located either on the suction side or the discharge side of the pump 32 to reduce back flow of fluid when the pump is off.

[0041] The operation of the pump 32 is controlled by a pump control system and method including a parameter estimator in accordance with the present invention. For purposes of illustration, the pump control system 20 is described with reference to an application in a pump system that includes a conventional progressing cavity pump. The progressing cavity pump includes an electric drive system 37 and motor 36 that rotates the rod string 35 that includes helix portion 34 of the pump 32. The drive 37 receives commands from controller 50 to control its speed. The controller 50 is located above ground and contains all the sensors and sensor interface circuitry and cabling necessary to monitor the performance of the pump system. The rod string 35 is suspended from the well head assembly 38 for rotating the helix 34 that is disposed near the bottom 30 of the well.

[0042] The rod string 35 is driven by an electric motor 36, the shaft of which can be coupled to the rod string through a gearbox 17 or similar speed reduction mechanism. The motor 36 can be a three-phase AC induction motor designed to be operated from line voltages in the range of 230 VAC to 690 VAC and developing 5 to 250 horsepower, depending upon the capacity and depth of the pump. The gearbox 17 converts motor torque and speed input to a suitable torque and speed output for driving the rod string 35 and helix 34 carried thereby.

[0043] Pump Control System

[0044] Referring to FIG. 2, there is shown a simplified representation of the pump control system 20 for the pump 32. The pump control system 20 controls the operation of the pump 32. In one embodiment, the casing fluid level is estimated using pump flow and head pressure estimates which, in turn, can be derived from values of motor speed and torque estimates. The pump flow and head pressure estimates are combined with system model parameters to produce a casing fluid level estimate. In one preferred embodiment, a pump model and system model are used to produce estimated values of pump flow and casing fluid level for use by a pump controller in producing drive control signals for the pump 32.

[0045] Alternatively, the measured discharge flow rate of the pump 32 can be obtained using the surface discharge flow rate and combined with the estimates produced by the pump and system models to produce the casing fluid level estimate.

[0046] While in a primary function the estimated parameter values are used for control, the parameter values also can be used for other purposes. For example, the estimated parameter values can be compared with those measured by sensors or transducers for providing diagnostics alarms. The estimated parameter values may also be displayed to setup, maintenance or operating personnel as an aid to adjusting or troubleshooting the system.

[0047] In one embodiment, values of flow and pressure parameters are derived using measured values of instantaneous motor currents and voltages, together with pump and system parameters, without requiring down hole sensors, echo meters, flow sensors, etc. The flow and pressure parameters can be used to control the operation of the pump 32 to optimize the operation of the system. In addition, pump performance specifications and system identification routines are used to establish parameters used in calculating performance parameters that are used in real time closed loop control of the operation of the pump.

[0048] The pump control system 20 includes transducers, such as motor current and motor voltage sensors, to sense dynamic variables associated with motor load and velocity. The pump control system further includes a controller 50, a block diagram of which is shown in FIG. 2. Current sensors 51 of interface devices 140 are coupled to a sufficient number of the motor windings—two in the case of a three phase AC motor. Voltage sensors 52 are connected across the motor winding inputs. The motor current and voltage signals produced by the sensors 51 and 52 are supplied to a processing unit 54 of the controller 50 through suitable input/output devices 53. The controller 50 further includes a storage unit 55 including storage devices which store programs and data files used in calculating operating parameters and producing control signals for controlling the operation of the pump system. This self-sensing control arrangement provides nearly instantaneous estimates of motor velocity and torque, which can be used for both monitoring and real-time, closed-loop control of the pump. For example, in one embodiment, instantaneous estimates of motor velocity and torque used for real-time, closed-loop control are provided at the rate of about 1000 times per second.

[0049] Motor currents and voltages are sensed to determine the instantaneous electric power drawn from the power source by the electric motor operating the pump. As the rod 35 (FIG. 2) that drives the progressing cavity pump 32 is rotated, the motor 36 is loaded. By monitoring the motor current and voltage, the calculated torque and speed produced by the motor are used to calculate estimates of fluid flow and head pressure produced by the pump.

[0050] More specifically, interface devices 140 contain the devices for interfacing the controller 50 with the outside world. None of these devices are located downhole. Sensors in blocks 51 and 52 can include hardware circuits which convert and calibrate the motor current and voltage signals into current and flux signals. After scaling and translation, the outputs of the voltage and current sensors can be digitized by analog to digital converters in block 53. The processing unit 54 combines the scaled signals with motor equivalent circuit parameters stored in the storage unit 55 to produce a precise calculation of electrical torque and motor velocity.

[0051] Pump Control

[0052] Referring to FIG. 3, which is a functional block diagram of the pump control system 20, the pump 32 is driven by a drive 37, motor 36 and gearbox 17 to transfer fluid within a system 150. The pump 32 is coupled to the output of the drive motor 36 through a gearbox 17 and accordingly, the pump speed Up is equal to Um divided by Ng, where Um is the motor speed and Ng is the gearbox ratio. The pump torque Tp is equal to Tm multiplied by the product of Ng and Eg, where Tm is the motor torque and Eg is the gearing efficiency. The operation of the motor 36 is controlled by the drive 37 and controller 50 which includes a pump model 60, system model 80, fluid level feedforward controller 90, fluid level feedback controller 100, motor vector controller 130 and interface devices 140.

[0053] More specifically, block 140, which is located above ground, can include hardware circuits which convert and calibrate the motor current signals Im (consisting of individual phase current measurements Ium and Ivm in the case of a three phase motor) and voltage signals Vm (consisting of individual phase voltage measurements Vum, Vvm and Vwm in the case of a three phase motor) into motor current and flux signals. After scaling and translation, the outputs of the voltage and current sensors can be digitized by analog to digital converters into measured voltage signals Vmm and measured current signals Imm. The motor vector controller 130 combines the scaled signals with motor equivalent circuit parameters to produce a precise calculation of motor electrical torque Tme and velocity Ume. Automatic identification routines can be used to establish the motor equivalent circuit parameters.

[0054] The pump model 60 calculates the values of parameters, such as discharge flow rate Qpe and head pressure Hpe, relating to operation of the pump 32 without the need for external flow or pressure sensors. In one embodiment, the pump model 60 derives values of the discharge flow rate Qpe and the head pressure Hpe of the pump from inputs corresponding to estimated motor torque Tme and motor speed Ume. Further, the system model 80 derives estimated values of the pump suction pressure Pse, flow head loss Hfe, pump discharge pressure Pde and the casing fluid level Xce from inputs corresponding to discharge flow rate value Qpe and the head pressure value Hpe of the pump. The fluid level feedforward controller 90 uses the motor speed value Ume, flow head loss value Hfe and commanded fluid level Xcc to calculate a motor torque feedforward signal Tmf for the motor vector controller 130. The fluid level feedback controller 100 compares the commanded fluid level Xcc with static and dynamic conditions of the fluid level value Xce to calculate a motor velocity command Umc for the motor vector controller 130.

[0055] Motor vector controller 130 combines the motor speed command Umc and the motor torque feedforward signal Tmf to generate motor current commands Imc and voltage commands Vmc. Interface devices in block 140, which can be digital to analog converters, convert the current commands Imc and voltage commands Vmc into signals which can be understood by the drive 37. These signals are shown as Ic for motor current commands and Vc for motor winding voltage commands.

[0056] The controller 50 provides prescribed operating conditions for the pump and/or system. To this end, the pump model 60 also can calculate the efficiency Epe of the pump for use by the controller 50 in adjusting operating parameters of the pump 32 to determine the fluid level Xc needed to maximize production of gas or produced fluid and/or the fluid level Xc needed to maximize production with a minimum power consumption.

[0057] The controller 50 uses the parameter estimates to operate the progressing cavity pump so as to minimize energy consumption, optimize gas flow, and maintain the fluid level to accomplish the objectives. Other inputs supplied to the controller 50 include the commanded casing fluid level Xcc and values representing casing pressure Pc and tubing pressure Pt. Values representing casing pressure Pc and tubing pressure Pt may each be preset to approximate values as part of the system setup or, as is preferable in situations where these values are likely to vary during operation of the system, the controller 50 can use values measured by sensors connected to the controller 50 through appropriate signal conditioning and interface circuitry.

[0058] The controller 50 optimizes use of electrical power as the flow delivery requirements change and can determine fluid level without using downhole sensors or surface flow sensors. As will be shown, the control operations provided by the controller 50 include the use of the pump model 60 and system model 80 to relate mechanical pump input to output flow rate and head pressure. In one embodiment, this is achieved by deriving an estimate of pump head pressure from above ground measurements of motor current and voltage. From the head pressure estimate thus obtained, the pump flow rate and efficiency are determined using pump curve data. The results are used to control the pump 32 to protect it from damage and to provide closed-loop control of the pump 32 in order to optimize the operation of the pumping system. Protecting the pump 32 includes detecting blockage, cavitation, stuck pump, broken rod string and stick slip oscillation.

[0059] Moreover, the operation of the pump 32 can be controlled to enable it to operate periodically, such that the pump can operate efficiently at a decreased average pump flow. This obviates the need to replace the progressing cavity pump with another pump, such as a rod beam pump, when fluid level or inflow within the well decreases over time.

[0060] Further, in accordance with the invention, the pump can be cycled between its most efficient operating speed and zero speed at a variable duty cycle to regulate average pump flow. Referring to FIG. 1, in cases where progressing cavity pumps are being operated at a low duty cycle, such as on for twenty-five percent of the time and off for seventy-five percent of the time, a check valve 28 may be used down hole to prevent back flow of previously pumped fluid during the portion of each cycle that the pump is off. The check valve 28 can be designed to allow a small amount of leakage. This allows the fluid to slowly drain out of the tube 14 to allow maintenance operations.

[0061] Pump Model

[0062] Reference is now made to FIG. 4, which is a block diagram of an algorithm for the pump model 60 of the pump 32. The pump model 60 is used to calculate estimates of parameters including head pressure Hpe, fluid flow Qpe and pump efficiency Epe. In one preferred embodiment, the calculations are carried out by the processing unit 54 (FIG. 2) under the control of software routines stored in the storage devices 55 (FIG. 2). Briefly, values of motor torque Tme and motor speed Ume are used to determine pump head torque estimate, The, that is converted into a pump head pressure estimate Hpe. The calculated head pressure Hpe is utilized with pump speed estimate Upe to produce a pump flow estimate Qpe. The values of head pressure Hpe, pump flow Qpe, fluid specific weight Dc, motor speed Ume and torque Tme are utilized to calculate the efficiency of the pump system Epe.

[0063] More specifically, the motor vector controller 130 (FIG. 3) responds to signals corresponding to instantaneous values of motor currents and voltages to produce an estimate of electrical torque Tme and speed Ume of the drive motor 36. The pump model 60 converts the values of motor torque Tme and motor velocity Ume to pump torque estimate Tpe and viscous torque estimate Tve. The values of pump torque Tpe and viscous torque Tve are combined with static torque Ts to obtain a value of head torque estimate, The, for the pump for use in determining head pressure Hpe.

[0064] With reference to the algorithm illustrated in FIG. 4, the value for pump torque Tpe is obtained by multiplying the value for motor torque Tme by a gearbox torque gain Ng x Eg, block 61, where Ng is the gearbox ratio and Eg is the gearbox efficiency. The value for pump speed Upe is derived from motor speed estimate Ume divided by the gearbox ratio Ng, block 62. The value for viscous torque estimate Tve is derived from the pump speed estimate Upe multiplied by the viscous torque gain Kv, block 63. Viscous torque gain Kv and static torque Ts are known values obtained from the pump specifications or obtained by system parameter identification procedures.

[0065] The values of static torque Ts and viscous torque Tve are subtracted from the value of pump torque Tpe in summing block 64 to obtain the head torque value The. The head torque value The is scaled in block 65 to obtain an estimate of pump head pressure Hpe. The head torque value The is multiplied by a scaling factor Kh, or pressure head gain term, to obtain the estimate of pump head pressure Hpe. The parameter Kh is a known value obtained from the pump curve specifications, such as presented in FIG. 9, or obtained by system parameter identification procedures.

[0066] Blocks 66 to 69 are used to calculate the value of leakage flow Ql. This calculated value, Qle, can be comprised of two components. The first leakage component, Qhe, is based entirely on the pump head pressure Hpe. The second, Que, is based on pump head pressure Hpe and pump speed Upe. The curve shown in FIG. 10 is one of a family of curves. Each curve represents the expected flow at a given pump speed Up for the range of head pressure Hp. Leakage flow Ql is the difference between the flow when pump head pressure Hp is zero (Qr) and the flow at the given value of Hp. Leakage flow Ql increases with an increase in head pressure Hp as shown by the curve. If the curves for all values of pump rotor speed Up are essentially parallel, the leakage is entirely speed independent. If all of the relevant curves for the pump tend to converge at the horizontal axis, the leakage is entirely speed dependent. That is the leakage falls to zero as the rotor stops regardless of the head pressure. In some cases, the leakage can be accurately represented only by a combination of both head and rotor speed dependent leakages Qhe and Que.

[0067] The pump head pressure value Hpe is used in calculating a speed independent leakage flow term Qhe, block 66, which can be represented by equation (1)

Qhe=K _(hl)(Hpe)+K _(h2)(Hpe){circumflex over ( )}2+ . . . +K _(hn)(Hpe){circumflex over ( )}n,  (1)

[0068] where the order of the equation can vary from 1 to n. When n is equal to 2, equation (1) is a second order equation and upon solving for values of Hpe, equation (1) can be used to plot a curve of values of Qhe as a function of head pressure as shown in FIG. 10.

[0069] The pump head pressure value Hpe is similarly used in calculating a speed dependent leakage flow term Que, block 67, which can be represented by equation (2)

Que=K _(u1)(Hpe)+K _(u2)(Hpe){circumflex over ( )}2+ . . . +K _(un)(Hpe){circumflex over ( )}n,  (2)

[0070] where the order of the equation can vary from 1 to n. When n is equal to 2, equation (2) is a second order equation and upon solving for values of Hpe, equation (2) can be used to plot a curve of values of Que as a function of head pressure as shown in FIG. 10. In block 68, Que is then scaled using a scaling factor Upe/Ur, the ratio of pump speed estimate Upe (from block 62) to the speed at which the pump performance is rated Ur, before being added to the speed independent leakage value Qhe in summing block 69 to produce the total leakage flow estimate Qle.

[0071] In block 70, the flow value at rated speed and no head pressure Qr is scaled, using a scaling factor Upe/Ur, the ratio of pump speed estimate Upe (from block 62) to the speed at which the pump performance is rated Ur, to obtain the pump discharge flow rate estimate Qde. The leakage flow estimate Qle (from block 69) is then subtracted from the pump discharge flow estimate Qde in summing block 71 to calculate the net pump flow Qpe.

[0072] The pump efficiency Epe is calculated in block 72 as the ratio of the estimated fluid power output to the estimated motor power input to the pump mechanical system. Where the fluid power produced is expressed as the product of the pump head estimate Hpe, pump flow estimate Qpe and the specific weight of the casing fluid Dc and the estimated motor mechanical power is expressed as the product of motor torque estimate Tme and motor speed estimate Ume. Not shown are conversion factors which would be applied to both the numerator and denominator to convert each to the same unit system for power.

[0073] System Model

[0074] Reference is now made to FIG. 5, which is a block diagram of an algorithm for the system model 80 of the fluid system 150 (FIG. 3). The system model 80 is used to calculate estimates of system parameters including pump suction pressure Pse, pump discharge pressure Pde, head flow loss Hfe and casing fluid level Xce. In one preferred embodiment, the calculations are carried out by the processing unit 54 (FIG. 2) under the control of software routines stored in the storage devices 55. FIG. 11 diagrammatically presents the actual reservoir system parameters which are used in FIG. 5 for the pump 32. Ps is the pump suction pressure, Pd is the pump discharge pressure, Hp is the pump head pressure, Hf is the flow head loss and Qp is the pump flow rate. Lp is the length of the pump, Lt (not shown) is the length of the tubing from the pump outlet to the tubing outlet, Xp is the pump depth and Xc is the fluid level within the casing 15 (FIG. 1). Pc is the pressure within the casing and Pt is the pressure within the tubing 14. Parameter Dt is the tubing fluid specific weight and parameter Dc is the casing fluid specific weight.

[0075] Briefly, with reference to FIG. 5, pump flow estimate Qpe, pump head pressure estimate Hpe, and values of tubing pressure Pt and casing pressure Pc are combined with reservoir parameters of pump depth Xp and pump length Lp to determine pump suction pressure Pse and casing fluid level Xce.

[0076] More specifically, the processing unit 54 responds to the pump flow Qpe produced by the pump model 60 (FIG. 4) to calculate a tubing flow head loss estimate Hfe in block 81 from the pump flow Qpe. The head loss equation for Hfe presented in block 81 can be derived empirically and fit to an appropriate equation or obtained from well known relationships for incompressible flow. One such relationship for flow head loss estimate Hfe is obtained from the DarcyWeisbach equation:

Hfe=f[(L/d)(V ²/2G)]  (3)

[0077] where f is the friction factor, L is the length of the tubing, d is the inner diameter of the tubing, V is the average fluid velocity (Q/A, where Q is the fluid flow and A is the area of the tubing), and G is the gravitational constant. For laminar flow conditions (Re<2300), the friction factor f is equal to 64/Re, where Re is the Reynolds number. For turbulent flow conditions, the friction factor can be obtained using the Moody equation and a modified Colebrook equation, which will be known to one of ordinary skill in the art. For non-circular pipes, the hydraulic radius (diameter) equivalent may be used in place of the diameter in equation (3). Furthermore, in situ calibration may be employed to extract values for the friction factor f in equation (3) by system identification algorithms. Commercial programs that account for couplers and spacers used on the rod string within the tubing are also available for calculation of fluid flow loss factors.

[0078] It should be noted that although fluid velocity V may change throughout the tubing length, the value for fluid velocity can be assumed to be constant over a given range.

[0079] The suction pressure Pse is calculated by adding the head loss Hfe calculated in block 81 with the pump depth Xp and subtracting the pump head pressure Hpe in summing block 82. The output of summing block 82 is scaled by the tubing fluid specific weight Dt in block 83 and added to the value representing tubing pressure Pt in summing block 84 to yield the suction pressure Pse.

[0080] The pump discharge pressure Pde is calculated by subtracting the length of the pump Lp from the pump head pressure Hpe in summing block 87 to yield the net pump head pressure estimate Hne. Net pump head pressure Hne is the scaled by the casing fluid specific weight Dc in scaling block 88 to calculate the pump pressure Ppe. Pump pressure Ppe is then added to the pump suction pressure Pse in summing block 89 to calculate the pump discharge pressure Pde.

[0081] The casing fluid level Xce is calculated by subtracting casing pressure Pc from the suction pressure Pse, calculated in summing block 84, in summing block 85. The result of summing block 85 is scaled by the reciprocal of the casing fluid specific weight Dc in block 86 to yield the casing fluid level Xce.

[0082] The casing fluid specific weight and tubing fluid specific weight may differ due to different amounts and properties of dissolved gases in the fluid. At reduced pressures, dissolved gases may bubble out of the fluid and affect the fluid density. Numerous methods are available for calculation of average fluid density as a function of fluid and gas properties which are known in the art.

[0083] Fluid Level Feedforward Controller

[0084] Referring to FIG. 6, there is shown a process diagram of the fluid level feedforward controller 90. The fluid level feedforward controller 90 uses flow head loss Hfe, motor speed Ume and other parameters to produce a motor torque feedforward command Tmf for the motor vector controller 130 (FIG. 3). This torque signal is based on predicting the amount of torque required to maintain desired pressures, flows and levels in the pumping system. Use of this controller reduces the amount of fluid level error in the fluid level feedback controller 100 (FIG. 7), allowing conservative controller tuning and faster closed loop system response.

[0085] More specifically, in scaling block 91, the value of casing pressure Pc is scaled by the inverse of the casing fluid specific weight Dc to expess the result in equivalent column height (head). Similarly, in scaling block 92, the value of tubing pressure Pt is scaled by the inverse of the tubing fluid specific weight Dt to express the result in equivalent column height (head). In summing block 93, the negative of the output of block 91 is added to the output of block 92, the pipe head flow loss Hfe, the depth of the pump Xp, and the negative of the commanded casing fluid level Xcc to obtain pump head pressure command Hpc. The flow head loss Hfe is the reduction in pressure due to fluid friction as calculated in block 81 (FIG. 5). The commanded pump head Hpc is the pressure that the pump must produce as a result of the inputs to summing block 93. The values of casing pressure Pc and tubing pressure Pt can be measured in real time using above ground sensors in systems where they are variable or entered during setup in systems where they are relatively constant. The values of pump depth Xp, pump length Lp and commanded casing fluid level command Xcc are known.

[0086] More specifically, in block 94, the pump head pressure command Hpc is multiplied by the inverse of the pump head pressure gain Kh to produce the pump head torque command Thc. In scaling block 96, the motor speed value Ume is multiplied by the inverse of the gear ratio Ng producing the value of pump speed Upe. The pump speed value Upe is multiplied by the viscous torque gain Kv in block 97 to obtain viscous torque command Tvc.

[0087] The values of static torque Ts, pump head torque command Thc and viscous torque command Tvc are combined in summing block 95 to obtain the pump torque command Tpc. The pump torque command value Tpc is scaled by the gearbox scaling factor 1/(Ng×Eg) in block 98 to obtain the motor torque feedforward command Tmf for the motor vector controller 130 as shown in FIG. 3.

[0088] The magnitude of the motor torque feedforward command Tmf for the motor vector controller 130 varies with changes the fluid flow rate and/or in the commanded level Xcc of the fluid within the casing, causing the torque provided to the pump 32 to be adjusted.

[0089] Fluid Level Feedback Controller

[0090] Reference is now made to FIG. 7, which is a block diagram of a fluid level feedback controller 100 for the motor vector controller 130. The fluid level feedback controller 100 includes a PID (proportional, integral, derivative) function that responds to errors between casing fluid level command Xcc and casing fluid level Xce to adjust the speed command for the pump 32. Operation of the fluid level feedforward controller 90 provides a command based on the projected operation of the system. This assures that the errors to which the fluid level feedback controller 100 must respond will only be the result of disturbances to the system.

[0091] The inputs to the fluid level feedback controller 100 include casing fluid level command Xcc and a casing fluid level value Xce. The fluid level command Xcc is a known value and is subtracted from the casing fluid level value Xce in block 101 to produce the error signal Xer for the fluid level feedback controller 100.

[0092] The algorithm of the fluid level feedback controller 100 uses Z-transformations to obtain values for the discrete PID controller. The term Z⁻¹ (blocks 102 and 109) means that the value from the previous iteration is used during the current iteration.

[0093] More specifically, in summing block 101, an error signal Xer is produced by subtracting Xcc from Xce. The speed command derivative error term Udc is calculated by subtracting, in summing block 103, the current Xer value obtained in block 101 from the previous Xer term obtained from block 102 and multiplying by the derivative gain Kd in block 104. The speed command proportional error term Upc is calculated by multiplying the proportional gain Kp in block 105 by the current Xer value obtained in block 101. The speed command integral error term Uic is calculated by multiplying the integral gain Ki in block 106 by the current Xer value obtained in block 101 and summing this value in block 107 with the previous value of Uic obtained from block 109. The output of summing block 107 is passed through an output limiter, block 108, to produce the current integral error term Uic. The three error terms, Udc, Upc and Uic, are combined in summing block 110 to produce the speed command Umc for the pump motor drive 37 shown in FIG. 3.

[0094] Vector Controller

[0095] Reference is now made to FIG. 8, which is a simplified block diagram of the motor vector controller 130. The motor vector controller 130 contains functions for calculating the velocity error and the torque necessary to correct it, convert torque commands to motor voltage commands and current commands and calculate motor torque and speed estimates from measured values of motor voltages and motor currents.

[0096] In one embodiment, the stator flux is calculated from motor voltages and currents and the electromagnetic torque is directly estimated from the stator flux and stator current. More specifically, in block 131, three-phase motor voltage measurements Vmm and current measurements 1 mm are converted to dq (direct/quadrature) frame signals using three to two phase conversion for ease of computation in a manner known in the art. Signals in the dq frame can be represented as individual signals or as vectors for convenience. The motor vector feedback model 132 responds to motor stator voltage vector Vs and motor stator current vector Is to calculate a measure of electrical torque Tme produced by the motor. In one embodiment, the operations carried out by motor vector feedback model 132 for calculating the electrical torque estimate are as follows. The stator flux vector Fs is obtained from the motor stator voltage Vs and motor stator current Is vectors according to equation (4):

Fs=(Vs−Is.Rs)/s  (4)

Fds=(Vds−Ids.Rs)/s  (4A)

Fqs=(Vqs−Iqs.Rs)/s  (4B)

[0097] where Rs is the stator resistance and s (in the denominator) is the Laplace operator for differentiation. Equations (4A) and (4B) show typical examples of the relationship between the vector notation for flux Fs, voltage Vs, and current Is and actual d axis and q axis signals.

[0098] In one embodiment, the electrical torque Tme is estimated directly from the stator flux vector Fs obtained from equation (4) and the measured stator current vector Is according to equation (5) or its equivalent (5A):

Tme=Ku.(3/2).P.Fs×Is  (5)

Tme=Ku.(3/2).P.(Fds.Iqs−Fqs.Ids)  (5A)

[0099] where P is the number of motor pole pairs and Ku is a unit scale factor to get from MKS units to desired units.

[0100] In one embodiment, rotor velocity Ume is obtained from estimates of electrical frequency Ue and slip frequency Us. The motor vector feedback model 132 also performs this calculation using the stator voltage Vs and stator current Is vectors. In one embodiment, the operations carried out by the motor vector feedback model 132 for calculating the motor velocity Ume are as follows. A rotor flux vector Fr is obtained from the measured stator voltage Vs and stator current Is vectors along with motor stator resistance Rs, stator inductance Ls, magnetizing inductance Lm, leakage inductance SigmaLs, and rotor inductance Lr according to equations (6) and (7); separate d axis and q axis rotor flux calculations are shown in equations (7A) and (7B) respectively:

SigmaLs=Ls−Lm{circumflex over ( )}2/Lr  (6)

then

Fr=(Lr/Lm).[Fs−Is.SigmaLs]  (7)

Fdr=(Lr/Lm).(Fds−SigmaLs.Ids)  (7A)

Fqr=(Lr/Lm).(Fqs−SigmaLs.Iqs)  (7B)

[0101] The slip frequency Us can be derived from the rotor flux vector Fr, the stator current vector Is, magnetizing inductance Lm, rotor inductance Lr, and rotor resistance Rr according to equation (8): $\begin{matrix} {{Us} = {{Rr} \cdot \left( {{Lm}/{Lr}} \right) \cdot \frac{\left\lbrack {{{Fdr} \cdot {Iqs}} - {{Fqr} \cdot {Ids}}} \right\rbrack}{{{Fdr}^{\hat{}}2} + {{Fqr}^{\hat{}}2}}}} & (8) \end{matrix}$

[0102] The instantaneous excitation or electrical frequency Ue can be derived from stator flux according to equation (9): $\begin{matrix} {{Ue} = \frac{{{Fds} \cdot {sFqs}} - {{Fqs} \cdot {sFds}}}{{{Fds}^{\hat{}}2} + {{Fqs}^{\hat{}}2}}} & (9) \end{matrix}$

[0103] The rotor velocity or motor velocity Ume can be derived from the number of motor pole pairs P the slip frequency Us and the electrical frequency Ue according to equation (10):

Ume=(Ue−Us)(60)/P  (10)

[0104] The velocity controller 133 uses a PI controller (proportional, integral), PID controller (proportional, integral, derivative) or the like to compare the motor speed Ume with the motor speed command Umc and produce a speed error torque command Tuc calculated to eliminate the speed error. The speed error torque command Tuc is then added to the motor torque feedforward signal Tmf in summing block 134 resulting in net torque command Tnc. This net torque command Tnc is then converted to motor current commands Imc and voltage commands Vmc in flux vector controller 135 using a method which is known.

[0105] Referring to FIG. 12, in one preferred embodiment, the pump control system provided by the present invention is software based and is capable of being executed in a controller 50 shown in block diagram form in FIG. 12. In one embodiment, the controller 50 includes current sensors 51, voltage sensors 52, input devices 171, such as analog to digital converters, output devices 172, and a processing unit 54 having associated random access memory (RAM) and read-only memory (ROM). In one embodiment, the storage devices 55 include a database 175 and software programs and files which are used in carrying out simulations of circuits and/or systems in accordance with the invention. The programs and files of the controller 50 include an operating system 176, the parameter estimation engines 177 that includes the algorithms for the pump model 60 and the pump system model 80, pump controller engines 178 that include the algorithms for fluid level feedforward controller 90 and the fluid level feedback controller 100, and vector controller engines 179 for converting motor current and voltage measurements to torque and speed estimates and converting speed and torque feedforward commands to motor current and voltage commands, for example. The programs and files of the computer system can also include or provide storage for data. The processing unit 54 is connected through suitable input/output interfaces and internal peripheral interfaces (not shown) to the input devices, the output devices, the storage devices, etc., as is known.

[0106] Optimized Gas Production

[0107] The production of methane gas from coal seams can be optimized using the estimated parameters obtained by the pump controller 50 (FIG. 3) in accordance with the invention. For methane gas production, it is desirable to maintain the casing fluid level at an optimum level. A range for casing fluid level command Xcc is selected to define an optimal casing fluid level for extracting methane gas. This range is commonly referred to as a sweet zone.

[0108] In one embodiment of the present invention, the selection of the sweet zone is determined by the controller 50 (FIG. 3) that searches to find the optimum casing fluid level command Xcc. Since the sweet zone can change as conditions in the well change over time, it can be advantageous to program the controller 50 to perform these searches at periodic intervals or when specific conditions, such as a decrease in efficiency, are detected. In determining the sweet zone, the pump intake pressure Ps or casing fluid level Xc is controlled. The progressing cavity pump 32 is controlled by the fluid level feedforward controller 90 and the fluid level feedback controller 100 to cause the casing fluid level Xc to be adjusted until maximum gas production is obtained. The casing fluid level command Xcc is set to a predetermined start value. The methane gas flow through outlet 42 at the surface is measured. The casing fluid level command is then repeatedly incremented to progressively lower values. The methane gas production is measured at each new level to determine the value of casing fluid level Xc at which maximum gas production is obtained. The point of optimum performance is called the sweet spot. The sweet zone is the range of casing fluid level above and below the sweet spot within which the gas production decrease is acceptable. However, the selection of the sweet zone can be done manually by taking readings.

[0109] Improved Pump Energy Efficiency and Operating Range

[0110] To optimize the pump control when operated at low flow and/or efficiency, a duty cycle mode is selected to produce the required average flow rate while still operating the progressing cavity pump at its most efficient and optimal flow rate point Qo. In this duty cycle mode, the volume of fluid to be removed from the casing can be determined using the fluid inflow rate Qi when the casing fluid level Xc is near the desired level. A fluid level tolerance band is defined around the desired fluid level, within which the fluid level is allowed to vary. The volume Vb of the fluid level tolerance band is calculated from the projected area between the tubing, casing and pump body and the prescribed length of the tolerance band. This volume is used with the fluid inflow rate Qi to determine the pump off time period Toff. When the progressing cavity pump is on, the value for casing fluid level Xc is calculated and the fluid level in the casing is reduced to the lower level of the fluid level tolerance band, when the progressing cavity pump is again turned off. The fluid inflow rate Qi is calculated by dividing the fluid level tolerance band volume Vb by the on time period Ton used to empty the band, then subtracting the result from the optimal pump flow rate Qo used to empty the band. The on-off duty cycle varies automatically to adjust for changing well inflow characteristics. This variable duty cycle continues with the progressing cavity pump operating at its maximum efficiency over a range of average pump flow rates varying from almost zero to the flow associated with full time operation at the most efficient speed. Use of the duty cycle mode also increases the range of controllable pump average flow by using the ratio of on time, Ton, multiplied by optimal flow rate, Qo, divided by total cycle time (Ton+Toff) rather than the progressing cavity pump speed to adjust average flow. This also avoids the problems of stick slip oscillation and erratic flow associated with operating the pump at very low speeds. This duty cycle method can produce significant energy savings at reduced average flow rates as shown in FIG. 13. As can be seen in FIG. 13, the efficiency of the example pump using continuous operation decreases rapidly below about 7.5 gallons per minute (GPM), while the efficiency of the same pump operated using the duty cycle method remains at near optimum efficiency over the full range of average flow.

[0111] Pump system efficiency is determined by the ratio of the fluid power output to the mechanical or electrical power input. When operated to maximize efficiency, the controller turns the progressing cavity pump off when the progressing cavity pump starts operating in an inefficient range.

[0112] Pump and Pump System Protection

[0113] One method of protecting the progressing cavity pump and system components is to use sensors to measure the performance of the system above ground and compare this measurement to a calculated performance value. If the two values differ by a threshold amount, a fault sequence is initiated which may include such steps as activating an audio or visual alarm for the operator, activating an alarm signal to a separate supervisory controller or turning off the progressing cavity pump. In one embodiment, a sensor is used to measure the flow in the tubing at the surface Qpm and compare it with the calculated value Qpe. If the actual flow Qpm is too low relative to the calculated flow Qpe, this could be an indication of such faults as a tubing leak, where not all of the flow through the progressing cavity pump is getting to the measurement point, or stick slip oscillations, where the rotation of the rod at the surface is not the same as the rotation of the progressing cavity pump.

[0114] Although exemplary embodiments of the present invention have been shown and described with reference to particular embodiments and applications thereof, it will be apparent to those having ordinary skill in the art that a number of changes, modifications, or alterations to the invention as described herein may be made, none of which depart from the spirit or scope of the present invention. All such changes, modifications, and alterations should therefore be seen as being within the scope of the present invention. 

What is claimed:
 1. A method of measuring the performance of a progressing cavity pump for transferring fluid within a fluid system, the method comprising the steps of: determining values of torque and speed inputs to the progressing cavity pump; and using the values of torque and speed inputs to calculate one or more values representing the performance of the progressing cavity pump, wherein the values of torque and speed inputs are determined using measured or calculated values without requiring downhole sensors.
 2. The method of claim 1, wherein the values representing the performance of the progressing cavity pump are one or more values selected from the group consisting of pump flow rate, pump head pressure and pump efficiency.
 3. The method of claim 1 wherein the progressing cavity pump is coupled to an electric motor and the step of determining the torque and speed inputs to the progressing cavity pump comprises the steps of: measuring electrical voltages applied to the motor and currents drawn by the motor; and using the measured values of electrical voltages applied to the motor and currents drawn by the motor to calculate at least one of the values selected from the group consisting of motor torque and motor speed.
 4. The method of claim 3, wherein the values representing the performance of the progressing cavity pump are one or more values selected from the group consisting of pump flow rate, pump head pressure and pump efficiency.
 5. The method of claim 1, further comprising the steps of: using at or above ground sensors to determine measured progressing cavity pump performance values for one or more of the calculated pump performance values; comparing the measured progressing cavity pump performance values determined by the sensors with the corresponding calculated progressing cavity pump performance values; and generating a fault sequence if the difference between corresponding values exceeds an allowable limit.
 6. The method of claim 2, further comprising the steps of: using at or above ground sensors to determine measured progressing cavity pump performance values for one or more of the calculated progressing cavity pump performance values; comparing each measured progressing cavity pump performance value with the corresponding calculated progressing cavity pump performance value; and generating a fault sequence if the difference between corresponding values exceeds an allowable limit.
 7. The method of claim 3, further comprising the steps of: using at or above ground sensors to determine measured progressing cavity pump performance values for one or more of the calculated progressing cavity pump performance values; comparing each measured progressing cavity pump performance value with the corresponding calculated progressing cavity pump performance value; and generating a fault sequence if the difference between corresponding values exceeds an allowable limit.
 8. The method of claim 4, further comprising the steps of: using at or above ground sensors to determine measured progressing cavity pump performance values for one or more of the calculated progressing cavity pump performance values; comparing each measured progressing cavity pump performance value with the corresponding calculated progressing cavity pump performance value; and generating a fault sequence if the difference between corresponding values exceeds an allowable limit.
 9. A method of measuring the performance of a fluid system wherein a progressing cavity pump is used for transferring fluid within said fluid system, the method comprising the steps of: determining values of torque and speed inputs to the progressing cavity pump; using the values of torque and speed inputs to calculate one or more values representing the performance of the progressing cavity pump; and using the values representing the performance of the progressing cavity pump to calculate values representing the performance of the fluid system, wherein the values of torque and speed inputs are determined using measured or calculated values without requiring downhole sensors.
 10. The method of claim 9, wherein the values representing the performance of the fluid system are one or more values selected from the group consisting of pump suction pressure, pump discharge pressure, flow head loss and fluid level.
 11. The method of claim 9 wherein the progressing cavity pump is coupled to an electric motor and the step of determining the torque and speed inputs to the progressing cavity pump comprises the steps of: measuring the electrical voltages applied to the motor and currents drawn by the motor; and using the measured values of electrical voltages applied to the motor and currents drawn by the motor to calculate at least one of the values selected from the group consisting of motor torque and motor speed.
 12. The method of claim 11, wherein the values representing the performance of the fluid system are one or more values selected from the group consisting of pump suction pressure, pump discharge pressure, flow head loss and fluid level.
 13. The method of claim 9, further comprising the steps of: using at or above ground sensors to determine measured fluid system performance values for one or more of the calculated fluid system performance values; comparing each measured fluid system performance value with the corresponding calculated fluid system performance value; and generating a fault sequence if the difference between corresponding values exceeds an allowable limit.
 14. The method of claim 10, further comprising the steps of: using at or above ground sensors to determine measured fluid system performance values for one or more of the calculated fluid system performance values; comparing each measured fluid system performance value with the corresponding calculated fluid system performance value; and generating a fault sequence if the difference between corresponding values exceeds an allowable limit.
 15. The method of claim 11, further comprising the steps of: using at or above ground sensors to determine measured fluid system performance values for one or more of the calculated fluid system performance values; comparing each measured fluid system performance value with the corresponding calculated fluid system performance value; and generating a fault sequence if the difference between corresponding values exceeds an allowable limit.
 16. The method of claim 12, further comprising the steps of: using at or above ground sensors to determine measured fluid system performance values for one or more of the calculated fluid system performance values; comparing each measured fluid system performance value with the corresponding calculated fluid system performance value; and generating a fault sequence if the difference between corresponding values exceeds an allowable limit.
 17. A method of controlling a progressing cavity pump for transferring fluid within a fluid system, the method comprising the steps of: determining values of torque and speed inputs to the progressing cavity pump; using the values of torque and speed inputs to calculate one or more values representing the performance of the progressing cavity pump; using the progressing cavity pump performance values to produce one or more command signals; and using the command signals to control the speed of the progressing cavity pump, wherein the values of torque and speed inputs are determined using measured or calculated values without requiring downhole sensors.
 18. The method of claim 17, wherein the step of using progressing cavity pump performance values to produce command signals comprises the steps of: selecting a progressing cavity pump performance parameter to control; determining a setpoint for the selected progressing cavity pump performance parameter; calculating a control signal using the setpoint value of the selected progressing cavity pump performance parameter; and calculating the command signals from the control signal.
 19. The method of claim 18, wherein the selected progressing cavity pump performance parameter is the pump flow.
 20. The method of claim 19, wherein the step of using the command signals to control the speed of the progressing cavity pump includes repetitively switching the speed of the progressing cavity pump between a set pump speed for a portion of a cycle period and zero speed for the remainder of the cycle period to achieve an average pump flow equal to the setpoint value of the pump flow.
 21. The method of claim 18, wherein the selected progressing cavity pump performance parameter is the pump head pressure.
 22. The method of claim 17 wherein the progressing cavity pump is coupled to an electric motor and the step of determining the torque and speed inputs to the progressing cavity pump comprises the steps of: measuring the electrical voltages applied to the motor and currents drawn by the motor; and using the measured values of electrical voltages applied to the motor and currents drawn by the motor to calculate at least one of the values selected from the group consisting of motor torque and motor speed.
 23. The method of claim 22, wherein the step of using progressing cavity pump performance values to produce command signals comprises the steps of: selecting a progressing cavity pump performance parameter to control; determining a setpoint for the selected progressing cavity pump performance parameter; calculating a control signal using the setpoint value of the selected progressing cavity pump performance parameter; and calculating the command signals from the control signal.
 24. The method of claim 23, wherein the selected progressing cavity pump performance parameter is the pump flow.
 25. The method of claim 24, wherein the step of using the command signals to control the speed of the progressing cavity pump includes repetitively switching the speed of the progressing cavity pump between a set pump speed for a portion of a cycle period and zero speed for the remainder of the cycle period to achieve an average pump flow equal to the setpoint value of the pump flow.
 26. The method of claim 23, wherein the selected progressing cavity pump performance parameter is the pump head pressure.
 27. A method of controlling the performance of a fluid system wherein a progressing cavity pump is used for transferring fluid within said fluid system, the method comprising the steps of: determining values of torque and speed inputs to the progressing cavity pump; using the values of torque and speed inputs to calculate one or more values representing the performance of the progressing cavity pump; using the values representing the performance of the progressing cavity pump to calculate values representing the performance of the fluid system; using the system performance values to produce one or more command signals; and using the command signals to control the speed of the progressing cavity pump, wherein the values of torque and speed inputs are determined using measured or calculated values without requiring downhole sensors.
 28. The method of claim 27, wherein the step of using fluid system performance values to produce command signals comprises the steps of: selecting a fluid system performance parameter to control; determining a setpoint for the selected fluid system performance parameter; calculating a control signal using the setpoint value of the selected fluid system performance parameter; and calculating the command signals from the control signal.
 29. The method of claim 28, wherein the selected fluid system performance parameter to control is the pump suction pressure.
 30. The method of claim 29, further comprising the step of deriving the setpoint value for pump suction pressure from a fluid level command.
 31. The method of claim 28, further comprising the step of determining the fluid level command, said step of determining the fluid level command comprising the steps of: defining a fluid system performance characteristic to optimize; varying the fluid level incrementally through a range of values; determining a value representing the fluid system performance characteristic for each value of fluid level; determining for which value of fluid level the value representing the fluid system performance characteristic is optimized; and setting the fluid level command at the level which produces the optimized value.
 32. The method of claim 31, wherein the step of determining the fluid level command is automatically repeated at predetermined times.
 33. The method of claim 31, further comprising the step of periodically determining the pump efficiency and repeating the step of determining the fluid level command when a decrease in pump efficiency relative to prior determinations of pump efficiency is detected.
 34. The method of claim 31, wherein the fluid system is a gas well, further comprising the step of periodically determining the gas production and repeating the step of determining the fluid level command when a decrease in gas production relative to prior determinations of gas production is detected.
 35. The method of claim 29, wherein the step of using the command signals to control the speed of the progressing cavity pump includes repetitively performing the method comprising the steps of: operating the progressing cavity pump at a set speed until the pump suction pressure decreases to a value less than or equal to a pump suction pressure lower limit, said pump suction pressure lower limit calculated as the pump suction pressure setpoint minus a tolerance; and operating the progressing cavity pump at zero speed until the pump suction pressure increases to a value greater than or equal to a pump suction pressure upper limit, said pump suction pressure upper limit calculated as the pump suction pressure setpoint plus a tolerance.
 36. The method of claim 30, wherein the step of using the command signals to control the speed of the progressing cavity pump includes repetitively performing the method comprising the steps of: operating the progressing cavity pump at a set speed until the pump suction pressure decreases to a value less than or equal to a pump suction pressure lower limit, said pump suction pressure lower limit calculated as the pump suction pressure setpoint minus a tolerance; and operating the progressing cavity pump at zero speed until the pump suction pressure increases to a value greater than or equal to a pump suction pressure upper limit, said pump suction pressure upper limit calculated as the pump suction pressure setpoint plus a tolerance.
 37. The method of claim 31, wherein the step of using the command signals to control the speed of the progressing cavity pump includes repetitively performing the method comprising the steps of: operating the progressing cavity pump at a set speed until the pump suction pressure decreases to a value less than or equal to a pump suction pressure lower limit, said pump suction pressure lower limit calculated as the pump suction pressure setpoint minus a tolerance; and operating the progressing cavity pump at zero speed until the pump suction pressure increases to a value greater than or equal to a pump suction pressure upper limit, said pump suction pressure upper limit calculated as the pump suction pressure setpoint plus a tolerance.
 38. The method of claim 32, wherein the step of using the command signals to control the speed of the progressing cavity pump includes repetitively performing the method comprising the steps of: operating the progressing cavity pump at a set speed until the pump suction pressure decreases to a value less than or equal to a pump suction pressure lower limit, said pump suction pressure lower limit calculated as the pump suction pressure setpoint minus a tolerance; and operating the progressing cavity pump at zero speed until the pump suction pressure increases to a value greater than or equal to a pump suction pressure upper limit, said pump suction pressure upper limit calculated as the pump suction pressure setpoint plus a tolerance.
 39. The method of claim 33, wherein the step of using the command signals to control the speed of the progressing cavity pump includes repetitively performing the method comprising the steps of: operating the progressing cavity pump at a set speed until the pump suction pressure decreases to a value less than or equal to a pump suction pressure lower limit, said pump suction pressure lower limit calculated as the pump suction pressure setpoint minus a tolerance; and operating the progressing cavity pump at zero speed until the pump suction pressure increases to a value greater than or equal to a pump suction pressure upper limit, said pump suction pressure upper limit calculated as the pump suction pressure setpoint plus a tolerance.
 40. The method of claim 34, wherein the step of using the command signals to control the speed of the progressing cavity pump includes repetitively performing the method comprising the steps of: operating the progressing cavity pump at a set speed until the pump suction pressure decreases to a value less than or equal to a pump suction pressure lower limit, said pump suction pressure lower limit calculated as the pump suction pressure setpoint minus a tolerance; and operating the progressing cavity pump at zero speed until the pump suction pressure increases to a value greater than or equal to a pump suction pressure upper limit, said pump suction pressure upper limit calculated as the pump suction pressure setpoint plus a tolerance.
 41. The method of claim 27 wherein the progressing cavity pump is coupled to an electric motor and the step of determining the torque and speed inputs to the progressing cavity pump comprises the steps of: measuring the electrical voltages applied to the motor and currents drawn by the motor; and using the measured values of electrical voltages applied to the motor and currents drawn by the motor to calculate at least one of the values selected from the group consisting of motor torque and motor speed.
 42. The method of claim 41, wherein the step of using fluid system performance values to produce command signals comprises the steps of: selecting a fluid system performance parameter to control; determining a setpoint for the selected fluid system performance parameter; calculating a control signal using the selected fluid system performance parameter; and calculating the command signals from the control signal.
 43. The method of claim 42, wherein the selected fluid system performance parameter to control is the pump suction pressure.
 44. The method of claim 43, further comprising the step of deriving the setpoint value for pump suction pressure from a fluid level command.
 45. The method of claim 44, further comprising the step of determining the fluid level command, said step of determining the fluid level command comprising the steps of: defining a fluid system performance characteristic to optimize; varying the fluid level incrementally through a range of values; determining a value representing the fluid system performance characteristic for each value of fluid level; determining for which value of fluid level the value representing the fluid system performance characteristic is optimized; and setting the fluid level command at the level which produces the optimized value.
 46. The method of claim 45, wherein the step of determining the fluid level command is automatically repeated at predetermined times.
 47. The method of claim 45, further comprising the step of periodically determining the pump efficiency and repeating the step of determining the fluid level command when a decrease in pump efficiency relative to prior determinations of pump efficiency is detected.
 48. The method of claim 45, wherein the system is a gas well, further comprising the step of periodically determining the gas production and repeating the step of determining the fluid level command when a decrease in gas production is detected.
 49. The method of claim 43, wherein the step of using the command signals to control the speed of the progressing cavity pump includes repetitively performing the method comprising the steps of: operating the progressing cavity pump at a set speed until the pump suction pressure decreases to a value less than or equal to a pump suction pressure lower limit, said pump suction pressure lower limit calculated as the pump suction pressure setpoint minus a tolerance; and operating the progressing cavity pump at zero speed until the pump suction pressure increases to a value greater than or equal to a pump suction pressure upper limit, said pump suction pressure upper limit calculated as the pump suction pressure setpoint plus a tolerance.
 50. The method of claim 44, wherein the step of using the command signals to control the speed of the progressing cavity pump includes repetitively performing the method comprising the steps of: operating the progressing cavity pump at a set speed until the pump suction pressure decreases to a value less than or equal to a pump suction pressure lower limit, said pump suction pressure lower limit calculated as the pump suction pressure setpoint minus a tolerance; and operating the progressing cavity pump at zero speed until the pump suction pressure increases to a value greater than or equal to a pump suction pressure upper limit, said pump suction pressure upper limit calculated as the pump suction pressure setpoint plus a tolerance.
 51. The method of claim 45, wherein the step of using the command signals to control the speed of the progressing cavity pump includes repetitively performing the method comprising the steps of: operating the progressing cavity pump at a set speed until the pump suction pressure decreases to a value less than or equal to a pump suction pressure lower limit, said pump suction pressure lower limit calculated as the pump suction pressure setpoint minus a tolerance; and operating the progressing cavity pump at zero speed until the pump suction pressure increases to a value greater than or equal to a pump suction pressure upper limit, said pump suction pressure upper limit calculated as the pump suction pressure setpoint plus a tolerance.
 52. The method of claim 46, wherein the step of using the command signals to control the speed of the progressing cavity pump includes repetitively performing the method comprising the steps of: operating the progressing cavity pump at a set speed until the pump suction pressure decreases to a value less than or equal to a pump suction pressure lower limit, said pump suction pressure lower limit calculated as the pump suction pressure setpoint minus a tolerance; and operating the progressing cavity pump at zero speed until the pump suction pressure increases to a value greater than or equal to a pump suction pressure upper limit, said pump suction pressure upper limit calculated as the pump suction pressure setpoint plus a tolerance.
 53. The method of claim 47, wherein the step of using the command signals to control the speed of the progressing cavity pump includes repetitively performing the method comprising the steps of: operating the progressing cavity pump at a set speed until the pump suction pressure decreases to a value less than or equal to a pump suction pressure lower limit, said pump suction pressure lower limit calculated as the pump suction pressure setpoint minus a tolerance; and operating the progressing cavity pump at zero speed until the pump suction pressure increases to a value greater than or equal to a pump suction pressure upper limit, said pump suction pressure upper limit calculated as the pump suction pressure setpoint plus a tolerance.
 54. The method of claim 48, wherein the step of using the command signals to control the speed of the progressing cavity pump includes repetitively performing the method comprising the steps of: operating the progressing cavity pump at a set speed until the pump suction pressure decreases to a value less than or equal to a pump suction pressure lower limit, said pump suction pressure lower limit calculated as the pump suction pressure setpoint minus a tolerance; and operating the progressing cavity pump at zero speed until the pump suction pressure increases to a value greater than or equal to a pump suction pressure upper limit, said pump suction pressure upper limit calculated as the pump suction pressure setpoint plus a tolerance.
 55. A method of controlling the performance of a fluid system wherein a progressing cavity pump is used for transferring fluid within said fluid system, the method comprising the steps of: selecting a fluid system performance parameter to control; determining a setpoint for the selected fluid system performance parameter; determining values representing the performance of the progressing cavity pump; determining values representing the performance of the fluid system; using the pump performance values and fluid system performance values to calculate a feedforward signal by predicting a value of mechanical input to the progressing cavity pump when operating with the selected progressing cavity pump performance value at the setpoint value; using the feedforward signal to generate command signals; and using the command signals to control the speed of the progressing cavity pump.
 56. The method of claim 55, wherein the selected fluid system performance parameter to control is the pump suction pressure.
 57. The method of claim 56, further comprising the step of deriving the setpoint value for pump suction pressure from a fluid level command.
 58. The method of claim 57, further comprising the step of determining the fluid level command, said step of determining the fluid level command comprising the steps of: defining a fluid system performance characteristic to optimize; varying the fluid level incrementally through a range of values; determining a value representing the fluid system performance characteristic for each value of fluid level; determining for which value of fluid level the value representing the fluid system performance characteristic is optimized; and setting the fluid level command at the level which produces the optimized value.
 59. The method of claim 58, wherein the step of determining the fluid level command is automatically repeated at predetermined times.
 60. The method of claim 58, further comprising the step of periodically determining the pump efficiency and repeating the step of determining the fluid level command when a decrease in pump efficiency relative to prior determinations of pump efficiency is detected.
 61. The method of claim 58, wherein the system is a gas well, further comprising the step of periodically determining the gas production and repeating the step of determining the fluid level command when a decrease in gas production is detected.
 62. The method of claim 56, wherein the step of using the command signals to control the speed of the progressing cavity pump includes repetitively performing the method comprising the steps of: operating the progressing cavity pump at a set speed until the pump suction pressure decreases to a value less than or equal to a pump suction pressure lower limit, said pump suction pressure lower limit calculated as the pump suction pressure setpoint minus a tolerance; and operating the progressing cavity pump at zero speed until the pump suction pressure increases to a value greater than or equal to a pump suction pressure upper limit, said pump suction pressure upper limit calculated as the pump suction pressure setpoint plus a tolerance.
 63. The method of claim 57, wherein the step of using the command signals to control the speed of the progressing cavity pump includes repetitively performing the method comprising the steps of: operating the progressing cavity pump at a set speed until the pump suction pressure decreases to a value less than or equal to a pump suction pressure lower limit, said pump suction pressure lower limit calculated as the pump suction pressure setpoint minus a tolerance; and operating the progressing cavity pump at zero speed until the pump suction pressure increases to a value greater than or equal to a pump suction pressure calculated as the pump suction pressure setpoint plus a tolerance.
 64. The method of claim 58, wherein the step of using the command signals to control the speed of the progressing cavity pump includes repetitively performing the method comprising the steps of: operating the progressing cavity pump at a set speed until the pump suction pressure decreases to a value less than or equal to a pump suction pressure lower limit, said pump suction pressure lower limit calculated as the pump suction pressure setpoint minus a tolerance; and operating the progressing cavity pump at zero speed until the pump suction pressure increases to a value greater than or equal to a pump suction pressure upper limit, said pump suction pressure upper limit calculated as the pump suction pressure setpoint plus a tolerance.
 65. The method of claim 59, wherein the step of using the command signals to control the speed of the progressing cavity pump includes repetitively performing the method comprising the steps of: operating the progressing cavity pump at a set speed until the pump suction pressure decreases to a value less than or equal to a pump suction pressure lower limit, said pump suction pressure lower limit calculated as the pump suction pressure setpoint minus a tolerance; and operating the progressing cavity pump at zero speed until the pump suction pressure increases to a value greater than or equal to a pump suction pressure upper limit, said pump suction pressure upper limit calculated as the pump suction pressure setpoint plus a tolerance.
 66. The method of claim 60, wherein the step of using the command signals to control the speed of the progressing cavity pump includes repetitively performing the method comprising the steps of: operating the progressing cavity pump at a set speed until the pump suction pressure decreases to a value less than or equal to a pump suction pressure lower limit, said pump suction pressure lower limit calculated as the pump suction pressure setpoint minus a tolerance; and operating the progressing cavity pump at zero speed until the pump suction pressure increases to a value greater than or equal to a pump suction pressure upper limit, said pump suction pressure upper limit calculated as the pump suction pressure setpoint plus a tolerance.
 67. The method of claim 61, wherein the step of using the command signals to control the speed of the progressing cavity pump includes repetitively performing the method comprising the steps of: operating the progressing cavity pump at a set speed until the pump suction pressure decreases to a value less than or equal to a pump suction pressure lower limit, said pump suction pressure lower limit calculated as the pump suction pressure setpoint minus a tolerance; and operating the progressing cavity pump at zero speed until the pump suction pressure increases to a value greater than or equal to a pump suction pressure upper limit, said pump suction pressure upper limit calculated as the pump suction pressure setpoint plus a tolerance.
 68. A method of controlling the performance of a fluid system wherein a progressing cavity pump is used for transferring fluid within said fluid system, the method comprising the steps of: using a check valve to prevent back flow through the pump; and repetitively switching the speed of the progressing cavity pump between a set pump speed for a portion of a cycle period and zero speed for the remainder of the cycle period to achieve an average pump flow rate equal to a desired value of pump flow rate.
 69. A pump control system for controlling a progressing cavity pump for transferring fluid within a fluid system, the pump control system comprising: a plurality of sensors located at or above ground level; means responsive to the sensors for determining values of torque and speed inputs to the progressing cavity pump; means for using the values of torque and speed inputs to calculate one or more values representing the performance of the progressing cavity pump; and means for using the progressing cavity pump performance values to produce one or more command signals for controlling the speed of the progressing cavity pump, the values of torque and speed inputs being derived using measured or calculated values without requiring downhole sensors.
 70. The pump control system of claim 69, wherein said means using the progressing cavity pump performance values to produce command signals includes means for calculating a feedback signal indicative of the difference between a current value of a selected progressing cavity pump performance parameter and a setpoint value of the selected progressing cavity pump performance parameter, and means for calculating the command signals from the feedback signal.
 71. The pump control system of claim 70, wherein the selected progressing cavity pump performance parameter is the pump flow.
 72. The pump control system of claim 70, wherein the selected progressing cavity pump performance parameter is the pump head pressure.
 73. The pump control system of claim 69, wherein said means using the progressing cavity pump performance values to produce command signals includes means for calculating a feedforward signal by predicting a value of mechanical input to the progressing cavity pump when operating with a selected progressing cavity pump performance value at a setpoint value, and means for calculating the command signals from the feedforward signal.
 74. The pump control system of claim 71, including means for repetitively switching the speed of the progressing cavity pump between a set pump speed for a portion of a cycle period and zero speed for the remainder of the cycle period to achieve an average pump flow equal to the setpoint value of the pump flow.
 75. A pump control system for controlling a progressing cavity pump for transferring fluid within a gas or oil well, the pump control system comprising: a plurality of sensors located at or above ground level; means responsive to the sensors for determining values of torque and speed inputs to the progressing cavity pump; means for using the values of torque and speed inputs to calculate one or more values representing the performance of the progressing cavity pump; means for using the values representing the performance of the progressing cavity pump to calculate values representing the performance of the well; and means for using the system performance values to produce one or more command signals for controlling the speed of the progressing cavity pump, the values of torque and speed inputs being derived using measured or calculated values without requiring downhole sensors.
 76. The pump control system of claim 75, wherein said means for using the performance values to produce command signals includes means for calculating a feedback signal indicative of the difference between a current value of the selected performance parameter and a setpoint value of the selected performance parameter; and means for using the feedback signal to calculate the command signals.
 77. The pump control system of claim 75, wherein said means using the progressing cavity pump performance values to produce command signals includes means for calculating a feedforward signal by predicting a value of mechanical input to the progressing cavity pump when operating with a selected progressing cavity pump performance value at a setpoint value, and means for calculating the command signals from the feedforward signal.
 78. The pump control system of claim 76, wherein the selected performance parameter is the pump suction pressure.
 79. The pump control system of claim 78, wherein said means for using the performance values to produce command signals includes means for calculating the setpoint for pump suction pressure from a fluid level command.
 80. The pump control system of claim 79, wherein said means for using the system performance values to produce command signals includes means for periodically determining gas or oil production and adjusting fluid level command in response to detection of a decrease in gas or oil production.
 81. The pump control system of claim 78, wherein said means for using the command signals to control the speed of the progressing cavity pump includes means for operating the progressing cavity pump at a set speed until the pump suction pressure decreases to a value less than or equal to a pump suction pressure lower limit that is calculated as the pump suction pressure setpoint minus a tolerance; and means for operating the progressing cavity pump at zero speed until the pump suction pressure increases to a value greater than or equal to a pump suction pressure upper limit that is calculated as the pump suction pressure setpoint plus a tolerance.
 82. A pump control system for controlling a progressing cavity pump for transferring fluid within a fluid system, the pump control system comprising: means for determining values representing the performance of the progressing cavity pump; means for determining values representing the performance of the fluid system; means for calculating a feedforward signal by predicting a value of mechanical input to the progressing cavity pump when operating with a selected progressing cavity pump performance value at a setpoint value; and means for calculating from the feedforward signal one or more command signals for controlling the speed of the progressing cavity pump.
 83. The pump control system of claim 82, wherein the selected performance parameter is the pump suction pressure.
 84. The pump control system of claim 83, wherein said means for means for calculating a feedforward signal includes means for calculating the setpoint for pump suction pressure from a fluid level command.
 85. The pump control system of claim 84, wherein said means for means for calculating a feedforward signal includes means for periodically determining gas or oil production and adjusting fluid level command in response to detection of a decrease in gas or oil production.
 86. The pump control system of claim 83, wherein said means for using the command signals to control the speed of the progressing cavity pump includes means for operating the progressing cavity pump at a set speed until the pump suction pressure decreases to a value less than or equal to a pump suction pressure lower limit that is calculated as the pump suction pressure setpoint minus a tolerance; and means for operating the progressing cavity pump at zero speed until the pump suction pressure increases to a value greater than or equal to a pump suction pressure upper limit that is calculated as the pump suction pressure setpoint plus a tolerance.
 87. A pump control system for controlling a progressing cavity pump for transferring fluid within a gas or oil well, the pump control system comprising: means for determining values representing the performance of the progressing cavity pump; means for determining values representing the performance of the well; means for calculating a feedforward signal by predicting a value of mechanical input to the progressing cavity pump when operating with a selected progressing cavity pump performance value at a setpoint value; and means for calculating from the feedforward signal one or more command signals for controlling the speed of the progressing cavity pump.
 88. The pump control system of claim 87, wherein the selected performance parameter is the pump suction pressure.
 89. The pump control system of claim 88, wherein said means for means for calculating a feedforward signal includes means for calculating the setpoint for pump suction pressure from a fluid level command.
 90. The pump control system of claim 89, wherein said means for means for calculating a feedforward signal includes means for periodically determining gas or oil production and adjusting fluid level command in response to detection of a decrease in gas or oil production.
 91. The pump control system of claim 88, wherein said means for using the command signals to control the speed of the progressing cavity pump includes means for operating the progressing cavity pump at a set speed until the pump suction pressure decreases to a value less than or equal to a pump suction pressure lower limit that is calculated as the pump suction pressure setpoint minus a tolerance; and means for operating the progressing cavity pump at zero speed until the pump suction pressure increases to a value greater than or equal to a pump suction pressure upper limit that is calculated as the pump suction pressure setpoint plus a tolerance. 